﻿/*
Nombre:                         IActivo
Descripcion:                    Interfaz que determina si el objeto mapeado contiene campos que definen su estatus
Dependencias:                 
Fecha de creación:              20080904
Autor:                          VMORALES
Fecha de modifcación:         
Responsable:                  
Num. de modifcación:            0
*/

#region Imports

#endregion

namespace Electrocucaracha.AdminPersonal.DAO
{
    /// <summary>
    /// Interfaz que determina si el objeto mapeado contiene campos que definen su estatus
    /// </summary>
    /// <typeparam name="T">Entidad defina en la implemetacion de la interfaz</typeparam>
    public interface IActivo<T>
    {
        /// <summary>
        /// Funcion creada para obtener todas las entidades con estatus de activo o activadas
        /// </summary>
        /// <returns>Arreglo de entidades</returns>
        T[] ObtenerActivos();

        /// <summary>
        /// Funcion creada para obtener todas las entidades con estatus de inactivo o desactivadas
        /// </summary>
        /// <returns>Arreglo de entidades</returns>
        T[] ObtenerInactivos();

        /// <summary>
        /// Funcion que activa en la capa de persistencia la entidad dada
        /// </summary>
        /// <param name="entidad">Entidad a tomar como referencia para su activacion</param>
        /// <returns>Verdadero en caso de exito en la actulalizacion</returns>
        bool Activar(T entidad);

        /// <summary>
        /// Funcion que desactiva en la capa de persistencia la entidad dada
        /// </summary>
        /// <param name="entidad">Entidad a tomar como referencia para su desactivacion</param>
        /// <returns>Verdadero en caso de exito en la actulalizacion</returns>
        bool Desactivar(T entidad);
    }//IActivo
}//Electrocucaracha.AdminPersonal.DAO
